﻿using Acaweb.Data.Contracts;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;
using Acaweb.Componentes.Contracts;
using System.Collections.Generic;
using System.Linq;

namespace Acaweb.Componentes
{
    public class EgresadosService : BaseService, IEgresadosService
    {
        private IEgresadosDao _EgresadosDao;
        private IHistorialAcademicoDao _HistorialAcademicoDao;
        private IHistorialLaboralDao _HistorialLaboralDao;

        public IHistorialAcademicoDao HistorialAcademicoDao
        {
            get { return _HistorialAcademicoDao; }
            set { _HistorialAcademicoDao = value; }
        }
        
        public IHistorialLaboralDao HistorialLaboralDao
        {
            get { return _HistorialLaboralDao; }
            set { _HistorialLaboralDao = value; }
        }

        public IEgresadosDao EgresadosDao
        {
            get { return _EgresadosDao; }
            set { _EgresadosDao = value; }
        }

        public IList<Egresados> GetAll()
        {
            return EgresadosDao.GetAll();
        }

        public Egresados GetById(int Id)
        {
            Egresados Egresado = EgresadosDao.GetById(Id);
            Egresado.HistorialAcademico = HistorialAcademicoDao.GetByAsociado(Egresado.CodigoInterno).ToList();
            Egresado.HistorialLaboral = HistorialLaboralDao.GetByAsociado(Egresado.CodigoInterno).ToList();

            return Egresado;
        }

        public IList<Egresados> GetByMunicipio(int Municipio)
        {
            return EgresadosDao.GetByMunicipio(Municipio);
        }

        public IList<Egresados> GetByPlanesEstudios(int PlanEstudio)
        {
            return EgresadosDao.GetByPlanesEstudios(PlanEstudio);
        }


        public Egresados GetByCodigo(int Codigo)
        {
            Egresados Egresado = EgresadosDao.GetByCodigoEstudiante(Codigo);
            Egresado.HistorialAcademico = HistorialAcademicoDao.GetByAsociado(Egresado.CodigoInterno).ToList();
            Egresado.HistorialLaboral = HistorialLaboralDao.GetByAsociado(Egresado.CodigoInterno).ToList();

            return Egresado;
        }
    }
}
